package com.pe.rimac;

import android.database.sqlite.SQLiteCursor;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.CompoundButton;
import android.widget.EditText;
import android.widget.Spinner;

import com.pe.rimac.util.RSTextWatcher;

public class OcupanteModuloDatos2Activity extends BaseActivity {

	private boolean finalizoCargaInicial;
	
	@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.vs_ocupante_mod_datos2);
        
        cargarListas();
        
        if(!ocupante.isNew())
        {
        	llenarFormulario();
        }
        else
        {
        	finalizoCargaInicial = true;
        }
		
		cargarListeners();
		
    }

	private void llenarFormulario() {
		
		finalizoCargaInicial = false;
		
		setTextEditText(R.id.txtOcuDomicilio, ocupante.getDomicilio());
		selectedSpinner(R.id.cmbOcuDpto, ocupante.getDpto().getValor());
		setTextEditText(R.id.txtOcuTelefono, ocupante.getTelefono());
		setTextEditText(R.id.txtOcuCorreo, ocupante.getCorreo());
	}

	private void cargarListeners() {
		
		final Spinner spnOcuDist = (Spinner) findViewById(R.id.cmbOcuDist);
		spnOcuDist.setOnItemSelectedListener(this);
		
		final EditText txtOcuDomicilio = (EditText) findViewById(R.id.txtOcuDomicilio);
		txtOcuDomicilio.addTextChangedListener(new RSTextWatcher(txtOcuDomicilio, ocupante));
		
		final EditText txtOcuTelefono = (EditText) findViewById(R.id.txtOcuTelefono);
		txtOcuTelefono.addTextChangedListener(new RSTextWatcher(txtOcuTelefono, ocupante));
				
		final EditText txtOcuCorreo = (EditText) findViewById(R.id.txtOcuCorreo);
		txtOcuCorreo.addTextChangedListener(new RSTextWatcher(txtOcuCorreo, ocupante));
		
	}

	private void cargarListas() {
		
		final Spinner departamentoSpinner = (Spinner) findViewById(R.id.cmbOcuDpto);
	    departamentoSpinner.setOnItemSelectedListener(this);
	    
	    final Spinner provinciaSpinner = (Spinner) findViewById(R.id.cmbOcuProv);
	    provinciaSpinner.setOnItemSelectedListener(this);
		
		cargarDepartamentos();

	}

	private void cargarDepartamentos() {
		
		cargarSpinner(R.id.cmbOcuDpto, "TBL_DEPARTAMENTOS", "COD_DEPA", "DDEPARTAMENTO");
	    
	}
	
	private void cargarProvincias(String codDepa) {
		
		cargarSpinner(R.id.cmbOcuProv, "TBL_PROVINCIAS", "COD_PROV", "NOM_PROV", "WHERE COD_DEPA = ?", new String[]{codDepa});	    
	}
	
	private void cargarDistritos(String codProv) 
	{
		cargarSpinner(R.id.cmbOcuDist, "TBL_DISTRITOS", "Cod_Dist", "Nom_Dist", "WHERE Cod_Prov = ?", new String[]{codProv});
		if(!finalizoCargaInicial)
		{
			finalizoCargaInicial = true;
		}
	}

	@Override
	public void onItemSelected(AdapterView<?> parent, View view, int pos,
			long id) {
		SQLiteCursor item = (SQLiteCursor)parent.getItemAtPosition(pos);
		if (parent.getId() == R.id.cmbOcuDpto) {
			if(finalizoCargaInicial)
			{
				setBeanValorDescripcion(ocupante.getDpto(), item);
			}
			cargarProvincias(item.getString(0));
		}
		else if (parent.getId() == R.id.cmbOcuProv) {
			if(finalizoCargaInicial)
			{
				setBeanValorDescripcion(ocupante.getProv(), item);
			}
			cargarDistritos(item.getString(0));
		}
		else if (parent.getId() == R.id.cmbOcuDist) {
			setBeanValorDescripcion(ocupante.getDist(), item);
		}
	}

	@Override
	public void onNothingSelected(AdapterView<?> parent) {}

	@Override
	public void onClick(View v) {}
	
	@Override
	public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {}
	
}
